/*
 - Autor(es):
 -      Rommel A. Quintanilla C.
 -      Donia A. Ruelas A.
 -      Julio C. Ccahuana M.
 - Fecha: 16/05/07

 - Copyleft: (C) 2007
 - Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los
 - terminos de la Licencia Publica General de GNU segun es publicada por la Free
 - Software Foundation, de la version 2 de dicha Licencia.
 -
 - Este programa se distribuye con la esperanza de que sea util, pero SI NINGUNA
 - GARANTIA; tampoco las implicitas garantias de MERCANTILIDAD o ADECUACION A UN
 - PROPOSITO PARTICULAR. Consulte la GNU General Public License (GPL) para mas
 - detalles adjuntada a este programa. (Fichero: JuradoWeb-License.txt).
 -
 - Descripcion:
 - Servlet Registro Nuevo Usuario.
*/

package pe.edu.unap.jurado.BeansDatos;

import javax.xml.bind.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import pe.edu.unap.jurado.BeansDatos.BeanConfiguracionDatos;
import pe.edu.unap.jurado.Beans.*;

public class BeanInclusionDatos extends BeanDatos
{
  public BeanInclusionDatos()
  throws SQLException
  {
   fichero = new String("BeanInclusionDatos.java");  
  }
 
 public List getListaInclusion(String idConcurso)
 throws SQLException
 {
  List lista=new ArrayList();
  instruccion=conexion.prepareStatement("SELECT * FROM INCLUSION WHERE idConcurso = ?;");
  instruccion.setString(1,idConcurso);
  ResultSet resultado=instruccion.executeQuery();

  while(resultado.next())
  {
   BeanInclusion inclusion=new BeanInclusion();
   inclusion.setIdConcurso(idConcurso);   
   inclusion.setIdProblema(resultado.getString(2));
   inclusion.setNumVecesIntentadas(resultado.getString(3));   
   inclusion.setNumVecesAceptadas(resultado.getString(4));
   lista.add(inclusion);
  }
  return lista;
 }
 
 public void registrarInclusion(BeanInclusion inclusion)
 throws SQLException
 {
   instruccion=conexion.prepareStatement("INSERT INTO INCLUSION(idProblema,idConcurso) VALUES (?,?);");
   instruccion.setString(1,inclusion.getIdProblema());
   instruccion.setString(2,inclusion.getIdConcurso());
   instruccion.executeUpdate();
 }

 public void sumarSolucionInclusion(BeanInclusion inclusion)
 throws SQLException
 {
  instruccion=conexion.prepareStatement("SELECT numVecesAceptadas FROM INCLUSION WHERE idConcurso = ? AND idProblema = ?;");
  instruccion.setString(1,inclusion.getIdConcurso());
  instruccion.setString(2,inclusion.getIdProblema());
  ResultSet resultado=instruccion.executeQuery();
  resultado.next();
  String numVecesAceptadas = new String(resultado.getString(1));
  int i_numVecesAceptadas = Integer.parseInt(numVecesAceptadas.trim());
  i_numVecesAceptadas++;
  numVecesAceptadas = String.valueOf(i_numVecesAceptadas);

  instruccion=conexion.prepareStatement("UPDATE INCLUSION SET numVecesAceptadas = ? WHERE idConcurso = ? AND idProblema = ?;");
  instruccion.setString(1,numVecesAceptadas);
  instruccion.setString(2,inclusion.getIdConcurso());
  instruccion.setString(3,inclusion.getIdProblema());
  instruccion.executeUpdate();
 }

 public void sumarIntentoInclusion(BeanInclusion inclusion)
 throws SQLException
 {
  instruccion=conexion.prepareStatement("SELECT numVecesIntentadas FROM INCLUSION WHERE idConcurso = ? AND idProblema = ?;");
  instruccion.setString(1,inclusion.getIdConcurso());
  instruccion.setString(2,inclusion.getIdProblema());
  ResultSet resultado=instruccion.executeQuery();

  resultado.next();
  String numVecesIntentadas = new String(resultado.getString(1));
  int i_numVecesIntentadas = Integer.parseInt(numVecesIntentadas.trim());
  i_numVecesIntentadas++;
  numVecesIntentadas = String.valueOf(i_numVecesIntentadas);

  instruccion=conexion.prepareStatement("UPDATE INCLUSION SET numVecesIntentadas = ? WHERE idConcurso = ? AND idProblema = ?;");
  instruccion.setString(1,numVecesIntentadas);
  instruccion.setString(2,inclusion.getIdConcurso());
  instruccion.setString(3,inclusion.getIdProblema());
  instruccion.executeUpdate();
 }
}
